// 设计模式的核心操作是去观察你整个逻辑里面的变与不变
// 然后将变与不变分离 达到使变化的部分灵活 不变的地方稳定的目的

// 工厂模式其实就是将创建对象的过程单独封装
// 工厂模式的目的 就是为了无脑传参

// 不变的构造器
function User(name , age, career, work) {
    this.name = name
    this.age = age
    this.career = career 
    this.work = work
}
// 为了变而设置的构造函数
function Factory(name, age, career) {
    // 做出区分
    let work
    switch(career) {
        case 'coder':
            work =  ['写代码','写系分', '修Bug'] 
            break
        case 'product manager':
            work = ['订会议室', '写PRD', '催更']
            break
        case 'boss':
            work = ['喝茶', '看报', '见客户']
            break
        // case 'xxx':
            // 其它工种的职责分配
        default:
            work = []
    }
    // 最终还是利用构造器返回
    return new User(name, age, career, work)
}

const user = Factory("amadeus", 18, "coder")
const user2 = Factory("k-on", 19, "boss")

console.log(user)
console.log(user2)